home *** CD-ROM | disk | FTP | other *** search
- " Vim syntax file:
- " Language: Clipper 5.2 & FlagShip
- " Maintainer: C R Zamana <zamana@zip.net>
- " Some things based on c.vim by Bram Moolenaar and pascal.vim by Mario Eusebio
- " Last Change: Sat Sep 09 2000
-
- " For version 5.x: Clear all syntax items
- " For version 6.x: Quit when a syntax file was already loaded
- if version < 600
- syntax clear
- elseif exists("b:current_syntax")
- finish
- endif
-
- " Exceptions for my "Very Own" (TM) user variables naming style.
- " If you don't like this, comment it
- syn match clipperUserVariable "\<[a,b,c,d,l,n,o,u,x][A-Z][A-Za-z0-9_]*\>"
- syn match clipperUserVariable "\<[a-z]\>"
-
- " Clipper is case insensitive ( see "exception" above )
- syn case ignore
-
- " Clipper keywords ( in no particular order )
- syn keyword clipperStatement ACCEPT APPEND BLANK FROM AVERAGE CALL CANCEL
- syn keyword clipperStatement CLEAR ALL GETS MEMORY TYPEAHEAD CLOSE
- syn keyword clipperStatement COMMIT CONTINUE SHARED NEW PICT
- syn keyword clipperStatement COPY FILE STRUCTURE STRU EXTE TO COUNT
- syn keyword clipperStatement CREATE FROM NIL
- syn keyword clipperStatement DELETE FILE DIR DISPLAY EJECT ERASE FIND GO
- syn keyword clipperStatement INDEX INPUT VALID WHEN
- syn keyword clipperStatement JOIN KEYBOARD LABEL FORM LIST LOCATE MENU TO
- syn keyword clipperStatement NOTE PACK QUIT READ
- syn keyword clipperStatement RECALL REINDEX RELEASE RENAME REPLACE REPORT
- syn keyword clipperStatement RETURN FORM RESTORE
- syn keyword clipperStatement RUN SAVE SEEK SELECT
- syn keyword clipperStatement SKIP SORT STORE SUM TEXT TOTAL TYPE UNLOCK
- syn keyword clipperStatement UPDATE USE WAIT ZAP
- syn keyword clipperStatement BEGIN SEQUENCE
- syn keyword clipperStatement SET ALTERNATE BELL CENTURY COLOR CONFIRM CONSOLE
- syn keyword clipperStatement CURSOR DATE DECIMALS DEFAULT DELETED DELIMITERS
- syn keyword clipperStatement DEVICE EPOCH ESCAPE EXACT EXCLUSIVE FILTER FIXED
- syn keyword clipperStatement FORMAT FUNCTION INTENSITY KEY MARGIN MESSAGE
- syn keyword clipperStatement ORDER PATH PRINTER PROCEDURE RELATION SCOREBOARD
- syn keyword clipperStatement SOFTSEEK TYPEAHEAD UNIQUE WRAP
- syn keyword clipperStatement BOX CLEAR GET PROMPT SAY ? ??
- syn keyword clipperStatement DELETE TAG GO RTLINKCMD TMP DBLOCKINFO
- syn keyword clipperStatement DBEVALINFO DBFIELDINFO DBFILTERINFO DBFUNCTABLE
- syn keyword clipperStatement DBOPENINFO DBORDERCONDINFO DBORDERCREATEINF
- syn keyword clipperStatement DBORDERINFO DBRELINFO DBSCOPEINFO DBSORTINFO
- syn keyword clipperStatement DBSORTITEM DBTRANSINFO DBTRANSITEM WORKAREA
-
- " Conditionals
- syn keyword clipperConditional CASE OTHERWISE ENDCASE
- syn keyword clipperConditional IF ELSE ENDIF IIF IFDEF IFNDEF
-
- " Loops
- syn keyword clipperRepeat DO WHILE ENDDO
- syn keyword clipperRepeat FOR TO NEXT STEP
-
- " Visibility
- syn keyword clipperStorageClass ANNOUNCE STATIC
- syn keyword clipperStorageClass DECLARE EXTERNAL LOCAL MEMVAR PARAMETERS
- syn keyword clipperStorageClass PRIVATE PROCEDURE PUBLIC REQUEST STATIC
- syn keyword clipperStorageClass FIELD FUNCTION
- syn keyword clipperStorageClass EXIT PROCEDURE INIT PROCEDURE
-
- " Operators
- syn match clipperOperator "$\|%\|&\|+\|-\|->\|!"
- syn match clipperOperator "\.AND\.\|\.NOT\.\|\.OR\."
- syn match clipperOperator ":=\|<\|<=\|<>\|!=\|#\|=\|==\|>\|>=\|@"
- syn match clipperOperator "*"
-
- " Numbers
- syn match clipperNumber "\<\d\+\(u\=l\=\|lu\|f\)\>"
-
- " Includes
- syn region clipperIncluded contained start=+"+ skip=+\\\\\|\\"+ end=+"+
- syn match clipperIncluded contained "<[^>]*>"
- syn match clipperInclude "^\s*#\s*include\>\s*["<]" contains=clipperIncluded
-
- " String and Character constants
- syn region clipperString start=+"+ end=+"+
- syn region clipperString start=+'+ end=+'+
-
- " Delimiters
- syn match ClipperDelimiters "[()]\|[\[\]]\|[{}]\|[||]"
-
- " Special
- syn match clipperLineContinuation ";"
-
- " This is from Bram Moolenaar:
- if exists("c_comment_strings")
- " A comment can contain cString, cCharacter and cNumber.
- " But a "*/" inside a cString in a clipperComment DOES end the comment!
- " So we need to use a special type of cString: clipperCommentString, which
- " also ends on "*/", and sees a "*" at the start of the line as comment
- " again. Unfortunately this doesn't very well work for // type of comments :-(
- syntax match clipperCommentSkip contained "^\s*\*\($\|\s\+\)"
- syntax region clipperCommentString contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end=+\*/+me=s-1 contains=clipperCommentSkip
- syntax region clipperComment2String contained start=+"+ skip=+\\\\\|\\"+ end=+"+ end="$"
- syntax region clipperComment start="/\*" end="\*/" contains=clipperCommentString,clipperCharacter,clipperNumber,clipperString
- syntax match clipperComment "//.*" contains=clipperComment2String,clipperCharacter,clipperNumber
- else
- syn region clipperComment start="/\*" end="\*/"
- syn match clipperComment "//.*"
- endif
- syntax match clipperCommentError "\*/"
-
- " Lines beggining with an "*" are comments too
- syntax match clipperComment "^\*.*"
-
-
- " Define the default highlighting.
- " For version 5.7 and earlier: only when not done already
- " For version 5.8 and later: only when an item doesn't have highlighting yet
- if version >= 508 || !exists("did_clipper_syntax_inits")
- if version < 508
- let did_clipper_syntax_inits = 1
- command -nargs=+ HiLink hi link <args>
- else
- command -nargs=+ HiLink hi def link <args>
- endif
-
- HiLink clipperConditional Conditional
- HiLink clipperRepeat Repeat
- HiLink clipperNumber Number
- HiLink clipperInclude Include
- HiLink clipperComment Comment
- HiLink clipperOperator Operator
- HiLink clipperStorageClass StorageClass
- HiLink clipperStatement Statement
- HiLink clipperString String
- HiLink clipperFunction Function
- HiLink clipperLineContinuation Special
- HiLink clipperDelimiters Delimiter
- HiLink clipperUserVariable Identifier
-
- delcommand HiLink
- endif
-
- let b:current_syntax = "clipper"
-
- " vim: ts=4
-